package com.whfc.safety.service;

import com.whfc.common.exception.BizException;
import com.whfc.common.result.ListData;
import com.whfc.common.result.PageData;
import com.whfc.safety.dto.*;

import java.util.Date;

/**
 * @author qzexing
 * @version 1.0
 * @date 2021/11/17 14:04
 */
public interface MdSafetyBoardService {

    /**
     * 安全-问题类型统计
     *
     * @param deptId    组织机构ID
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return 问题类型统计
     * @throws BizException 业务异常
     */
    ListData<MdSafetyStatisticsDTO> getCheckTypeStatistics(Integer deptId, Date startTime, Date endTime) throws BizException;

    /**
     * 安全-问题类型统计
     *
     * @param deptId    组织机构ID
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @param pageNum   野蛮
     * @param pageSize  每页数量
     * @return 问题类型统计
     * @throws BizException 业务异常
     */
    PageData<MdSafetyStatisticsDTO> getCheckTypeStatistics(Integer deptId, Date startTime, Date endTime,
                                                           Integer pageNum, Integer pageSize) throws BizException;


    /**
     * 安全-问题部位统计
     *
     * @param deptId    组织机构ID
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return 问题部位统计
     * @throws BizException 业务异常
     */
    ListData<SafetyCheckPartStatisticalDTO> getCheckPartStatistics(Integer deptId, Date startTime, Date endTime) throws BizException;

    /**
     * 安全-检查记录列表
     *
     * @param deptId   组织机构ID
     * @param pageNum  页码
     * @param pageSize 每页数量
     * @return 检查记录列表
     * @throws BizException 业务异常
     */
    PageData<MdSafetyCheckDTO> getCheckList(Integer deptId, Integer pageNum, Integer pageSize) throws BizException;

    /**
     * 安全-问题分析
     *
     * @param deptId 组织机构ID
     * @return 问题分析
     * @throws BizException 业务异常
     */
    MdSafetyCheckAnalysisDTO getCheckAnalysis(Integer deptId) throws BizException;

    /**
     * 安全-问题动态
     *
     * @param deptId   组织机构ID
     * @param pageNum  页码
     * @param pageSize 每页数量
     * @return 问题动态
     * @throws BizException 业务异常
     */
    PageData<MdSafetyCheckLogDTO> getCheckLog(Integer deptId, Integer pageNum, Integer pageSize) throws BizException;
}
